package com.jsh.erp.datasource.mappers;

import com.jsh.erp.datasource.entities.WorkflowApproveDetail;
import com.jsh.erp.datasource.entities.WorkflowConfigDetail;
import com.jsh.erp.datasource.entities.WorkflowProcessDetail;
import com.jsh.erp.datasource.entities.WorkflowProcessDetailHis;
import com.jsh.erp.datasource.vo.NotAuditDepotHead;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface WorkflowProcessDetailMapperEx {

    List<WorkflowProcessDetail> selectByMainId(
            @Param("taskTitle") String taskTitle,
            @Param("userId") String userId,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows,
            @Param("flowKey") String flowKey);

    Long countsByMainId( @Param("taskTitle") String taskTitle,@Param("userId") String userId,@Param("flowKey") String flowKey);

    Long countByCreate(@Param("userId") String userId);

    List<NotAuditDepotHead> notAuditSubTypeCount(@Param("userId") String userId);

    List<WorkflowApproveDetail> selectApproveByCreate(
            @Param("taskTitle") String taskTitle,
            @Param("userId") String userId,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows,
            @Param("flowKey") String flowKey);

    Long countApproveByCreate( @Param("taskTitle") String taskTitle,@Param("userId") String userId,@Param("flowKey") String flowKey);

    List<WorkflowApproveDetail> rejectApproveList(
            @Param("taskTitle") String taskTitle,
            @Param("userId") String userId,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows,
            @Param("flowKey") String flowKey);

    Long rejectApproveCount( @Param("taskTitle") String taskTitle,@Param("userId") String userId,@Param("flowKey") String flowKey);

    List<WorkflowProcessDetailHis> selectByDefinId(@Param("defineDetailId") String defineDetailId);

    int batchDeleteByBillId(@Param("ids") String[] ids);

    Integer getBillProcessByNumber(@Param("number") String number);

    WorkflowProcessDetail selectById(@Param("id") String id);

    int deleteById(String id);

}
